\chapter{Literature Review}
\label{sec:lit}

Compressor control using advanced techniques such as MPC is an active field of research. 
A non-exhaustive summary of the work that has been done is presented here.
It is divided into five areas: the development of compressor models used for control and simulation, MPC theory and stability analysis, MPC controller development for individual compressors, anti-surge and performance control approaches for networks of compressors and implementation of MPC controllers on embedded systems. 

\section{Compressor Models}

Two different modelling approaches are used in industry: black box and gray box. Black box models fit experimental date to a pre-defined model type (e.g. ARX, state space, neural network), whose order is then chosen to give a good fit. 
Grey-box modelling uses a first principles approach, assuming a model structure based on the underlying physics of the system. 
The parameters of the model are then determined for the specific structure and order given. 
Here, grey-box models are considered, however black-box models are also commonly used in industry.

The underlying grey-box model used as the basis for most compressor control applications was developed by Greitzer \cite{Greitzer1976} and expanded by Moore and Greitzer \cite{Moore1985}.
They model a system consisting of a compressor, plenum and throttle for an inviscid, incompressible flow with constant time-averaged flow around the annulus. 
The equations are then developed to predict both surge and rotating stall.
The models are based on the use of compressor maps to characterize the behavior of each individual compressor, as well as parameters describing the up- and downstream processes.
The Greitzer model was developed for axial compressors, however it has been shown to be also applicable to centrifugal compressors by Hansen et al. \cite{Hansen1981} 

The Moore-Greitzer model was expanded by Gravdahl and Egeland to include both a close-coupled valve and a non-constant compressor speed for axial and centrifugal compressors \cite{Gravdahl1999}. 
This updated model was used to study surge during compressor acceleration for a variable-speed compressor.

Aaslid developed the Gravdahl and Greitzer model into a Simulink model, which was then validated against test data from a gas processing plant for use in anti-surge control (ASC) \cite{Aaslid2009}. 

Galindo et al. developed a compressor map extending into the surge region and experimentally validated it. The model obtained was found to be accurate even during operation in the surge regime \cite{Galindo2008}.

The invariant and ``nearly invariant'' coordinates often used to describe the surge line of a compressor with little or no dependence on inlet conditions were developed by Batson et al. \cite{Batson1996}
Using these coordinate systems allows the surge conditions to be represented as a single line (for fixed-geometry compressors) irrespective of input conditions, greatly simplifying the calculation of distance to surge -- an important quantity for anti-surge control.

%Aaslid2009\\
%Batson1996\\
%Gravdahl1998\\
%Greitzer1976\\
%Moore/Greitzer model from when??\\
%Galindo2007\\
%Li2014


\section{MPC for compressors}
MPC has been used in several cases to combine process and anti-surge control (ASC) -- traditionally performed by two independent controllers -- resulting in increased performance and better surge avoidance during disturbances compared to traditional PID controllers \cite{Cortinovis2015,Budinis2015}.

Cortinovis et al. showed that combined process and ASC using MPC led to a reduced distance to surge and a reduced settling time for process control in a centrifugal compressor in experiments compared to the current state-of-the-art. 
Both a discharge valve disturbance and a combined disturbance on both the discharge and the suction valve were considered \cite{Cortinovis2015}. 
The controller was implemented using linear MPC by linearizing the system at each time step. 

Similarly, Budinis and Thornhill found that a combined process/anti-surge MPC controller better handled disturbances on the inlet and outlet valves as well as changes in load pattern compared to a PID controller in simulation \cite{Budinis2015}.

Bentaleb et al. also demonstrated that an MPC controller manipulating both driver speed and the inlet guide vanes could achieve better process performance than a PID controller manipulating only the driver speed \cite{Bentaleb2014}.
This result was extended by Bentaleb to include the use of a recycle valve to combine process and anti-surge control \cite{Bentaleb2015}.


\section{Control of Compressor Networks}

An MPC controller for two compressors arranged in parallel was developed by Smeulers and Bouman who considered a single controller combining load-sharing for the two compressors as well as performance and anti-surge criteria for each compressor individually \cite{Smeulers1999}. 
The controller was implemented using linear MPC, where the non-linear model was linearized at each time step to characterize the compressors' non-linear behavior more accurately.
Two objectives for load-balancing were considered: equal distance of each compressor to the surge line and minimum power consumption of the system. 
The constraints used included surge constraints for each compressor, a maximum temperature constraint on the output plenum, and actuator constraints.
The controller was implemented in simulation using a relatively high sampling time on the order of one second due to computational limitations. 
For this reason, dedicated anti-surge controllers with a smaller sampling time was necessary to open the recycle valves much quicker in the case where the compressor moves toward surge during the sampling period of the MPC controller. 
In simulation, however, these backup controllers were unused as the MPC controller successfully kept both compressors away from the surge line.

Øvervåg also considered load sharing for two parallel compressors using an MPC controller \cite{Oevervaag2013}. 
He approximated the efficiency of each compressor using continuous functions and used the minimization of the fuel consumption for the turbines driving the compressors as the optimization criterion for MPC. 
As in \cite{Smeulers1999}, linear MPC is implemented by re-linearizing the compressor models at each time step.
The focus of this work was on the load-sharing algorithm and generating set-points for each compressor; it did not consider the process and surge control of the individual compressors, though constraints were used in the load-sharing formulation to keep both compressors away from the surge line.

% Load-sharing schemes based on control approaches other than MPC have also been studied. 
% Blotenberg et al. proposed a load-sharing approach whereby the distance to surge for each of the compressors in parallel is driven to be equal using throttle controllers in order to minimize the opening of the recycle valves \cite{Blotenberg1984}. 

% Xenos et al. used real-time optimization to determine the optimal loading of the compressor network based on compressor efficiency maps updated in real-time, and experimentally found a reduction in power consumption compared to equal load splitting \cite{Xenos2015}.

%In CCC presentation (!!!) a load-sharing scheme for parallel compressors based on equal distance to the surge line is described.
%The control is implemented using a combination of cascaded PID controllers and loop decoupling inputs to reduce the coupling effects between the compressors.

%\begin{itemize}
  %\item Blotenberg1984
  %\item Overvag2013
  %\item Paparella 2013
  %\item Peyrl2015
  %\item Smeulers1999
  %\item Xenos2015
%\end{itemize}



\section{Distributed MPC}
\label{sec:lit:dmpc}

An overview of the types of decentralized, distributed and hierarchical control schemes that have been presented in the literature, with a particular focus on MPC approaches, is given by Scattolini \cite{Scattolini2009}.
Venkat et al. proposed one such scheme: an iterative, cooperative distributed MPC (DMPC) approach for linear systems that achieves optimality at convergence, and for which the intermediate iterates are all feasible and result in closed-loop stability of the overall system \cite{Venkat2005}.

Richards and How present similar results using DMPC for a linear system, with the addition of bounded disturbances to establish a robustness guarantee \cite{Trodden2007}.
They found significant improvements in computation time compared with the centralized MPC approach, with minimal decrease in performance.

Stewart et al. studied cooperative DMPC for large systems, and established that the cooperative scheme -- unlike a non-cooperative or decentralized approach -- can converge to an optimal solution for arbitrary coupling strengths between the subsystems, and provides a suboptimal but stable and feasible solution at each iteration \cite{Stewart2010}.
These results were extended to nonlinear systems by Stewart, Wright and Rawling, who proposed a distributed, nonconvex optimizer for solving the resulting optimization problem \cite{Stewart2011}.
Their implementation did not require the use of centralized coordination between the sub-controllers, an important criteria for many industrial applications.

With the exception of the last work, these results, like much of the literature on distributed MPC, focus only on linear systems. 
They are therefore not directly applicable to the work done here, as the current model is not linear but rather re-linearized at each time step, however they provide valuable insight into the potential of distributed MPC controllers.


\section{Solvers \& Implementation}

Ferreau et al. present a quadratic programming solver using an active-set algorithm that can be used to efficiently solve QP problems, for example of the type solved at each timestep of an MPC controller \cite{Ferreau2014}. 
This solver is used for example by Cortinovis et al. to implement an MPC compressor controller on an embedded system \cite{Cortinovis2015}. 

Peyrl et al. also found that QPs generated by load-sharing MPC controllers have certain separability properties that can be exploited to more efficiently solve them using the alternating method of multipliers (ADMM) rather than a standard QP solver \cite{Peyrl2015}. For the compression station studied, ADMM was 10 times faster than a state-of-the-art QP solver, despite being implemented using code generation by Matlab Coder.






\input{litreview/stateoftheart}
